using System;
using ns27;
using Triton.Game.Mono;

namespace Triton.Game.Mapping
{
	[Attribute38("ChatLog")]
	public class ChatLog : MonoBehaviour
	{
		[Attribute38("ChatLog.Prefabs")]
		public class Prefabs : MonoClass
		{
			public MobileChatLogMessageFrame myMessage => method_3<MobileChatLogMessageFrame>("myMessage");

			public MobileChatLogMessageFrame theirMessage => method_3<MobileChatLogMessageFrame>("theirMessage");

			public MobileChatLogMessageFrame systemMessage => method_3<MobileChatLogMessageFrame>("systemMessage");

			public Prefabs(IntPtr address, string className)
				: base(address, className)
			{
			}

			public Prefabs(IntPtr address)
				: this(address, "Prefabs")
			{
			}
		}

		[Attribute38("ChatLog.MessageInfo")]
		public class MessageInfo : MonoClass
		{
			public Color infoColor => method_2<Color>("infoColor");

			public Color errorColor => method_2<Color>("errorColor");

			public Color notificationColor => method_2<Color>("notificationColor");

			public MessageInfo(IntPtr address, string className)
				: base(address, className)
			{
			}

			public MessageInfo(IntPtr address)
				: this(address, "MessageInfo")
			{
			}
		}

		public TouchList messageFrames => method_3<TouchList>("messageFrames");

		public GameObject cameraTarget => method_3<GameObject>("cameraTarget");

		public Prefabs prefabs => method_3<Prefabs>("prefabs");

		public MessageInfo messageInfo => method_3<MessageInfo>("messageInfo");

		public MobileChatNotification notifications => method_3<MobileChatNotification>("notifications");

		public static int maxMessageFrames => MonoClass.smethod_6<int>(TritonHs.MainAssemblyPath, "", "ChatLog", "maxMessageFrames");

		public static GameLayer messageLayer => MonoClass.smethod_6<GameLayer>(TritonHs.MainAssemblyPath, "", "ChatLog", "messageLayer");

		public BnetPlayer receiver => method_3<BnetPlayer>("receiver");

		public Camera messagesCamera => method_3<Camera>("messagesCamera");

		public BnetPlayer Receiver => method_14<BnetPlayer>("get_Receiver", Array.Empty<object>());

		public ChatLog(IntPtr address, string className)
			: base(address, className)
		{
		}

		public ChatLog(IntPtr address)
			: this(address, "ChatLog")
		{
		}

		public void Awake()
		{
			method_8("Awake");
		}

		public void OnDestroy()
		{
			method_8("OnDestroy");
		}

		public void OnResize()
		{
			method_8("OnResize");
		}

		public void OnWhisperFailed()
		{
			method_8("OnWhisperFailed");
		}

		public void OnPlayersChanged(BnetPlayerChangelist changelist, object userData)
		{
			method_8("OnPlayersChanged", changelist, userData);
		}

		public void OnNotified(string text)
		{
			method_8("OnNotified", text);
		}

		public void UpdateMessages()
		{
			method_8("UpdateMessages");
		}

		public void AddMyMessage(string message)
		{
			method_8("AddMyMessage", message);
		}

		public void AddSystemMessage(string message, Color color)
		{
			method_8("AddSystemMessage", message, color);
		}

		public void AddOnlineMessage()
		{
			method_8("AddOnlineMessage");
		}

		public void AddReceiverOfflineMessage()
		{
			method_8("AddReceiverOfflineMessage");
		}

		public void AddSenderOfflineMessage()
		{
			method_8("AddSenderOfflineMessage");
		}

		public void AddAppearOfflineMessage()
		{
			method_8("AddAppearOfflineMessage");
		}

		public void OnMessagesAdded()
		{
			method_8("OnMessagesAdded");
		}

		public MobileChatLogMessageFrame CreateMessage(MobileChatLogMessageFrame prefab, string message)
		{
			return method_15<MobileChatLogMessageFrame>("CreateMessage", new Class276.Enum20[2]
			{
				Class276.Enum20.Class,
				Class276.Enum20.String
			}, new object[2] { prefab, message });
		}

		public MobileChatLogMessageFrame CreateMessage(MobileChatLogMessageFrame prefab, string message, Color color)
		{
			return method_15<MobileChatLogMessageFrame>("CreateMessage", new Class276.Enum20[3]
			{
				Class276.Enum20.Class,
				Class276.Enum20.String,
				Class276.Enum20.ValueType
			}, new object[3] { prefab, message, color });
		}

		public void CreateMessagesCamera()
		{
			method_8("CreateMessagesCamera");
		}

		public Bounds GetBoundsFromGameObject(GameObject go)
		{
			return method_11<Bounds>("GetBoundsFromGameObject", new object[1] { go });
		}

		public void UpdateMessagesCamera()
		{
			method_8("UpdateMessagesCamera");
		}

		public void OnResizeAfterCurrentFrame()
		{
			method_8("OnResizeAfterCurrentFrame");
		}

		public void AssignMessageFrameNames()
		{
			method_8("AssignMessageFrameNames");
		}
	}
}
